package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RoleDao {
    /**
     * 通过用户的ID获取用户所拥有的角色集合
     * @param userId
     * @return
     */
    Set<Role> findByUserId(Integer userId);

    Page<Role> findByCondition(String queryString);


    void add(Role role);

    void setRoleAndPermission(Map<String, Integer> map);

    void setRoleAndMenu(Map<String, Integer> map);

    Role findById(Integer id);


    int countPermissionIdsByRoleId(int id);

    int countMenuIdsByRoleId(int id);

    int countUserIdsByRoleId(int id);

    void deleteById(int id);



    void deleteAssociationRoleAndPermission(Integer id);

    void deleteAssociationRoleAndMenu(Integer id);

    void edit(Role role);

    List<Role> findAll();


    List<Integer> findRoleIdsByUserId(int id);
}
